Support using names/nicks for the gdk_settings values for enum valued
authorOwen Taylor <otaylor@redhat.com>
Wed, 12 Dec 2001 20:26:50 +0000 (20:26 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Wed, 12 Dec 2001 20:26:50 +0000 (20:26 +0000)
Wed Dec 12 15:11:49 2001  Owen Taylor  <otaylor@redhat.com>
        * gtk/gtksettings.c (gtk_settings_get_property): Support
        using names/nicks for the gdk_settings values for enum valued
        types. (#57678, reported by Anders Carlsson)

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtksettings.c

index 0bffb6ba4e085083a3878d35d4b9f94f9ab1c9f1..6e6efdf7aab76eb778d68c18b411307804ac9d34 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Wed Dec 12 15:11:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtksettings.c (gtk_settings_get_property): Support
+       using names/nicks for the gdk_settings values for enum valued
+       types. (#57678, reported by Anders Carlsson)
+
 Wed Dec 12 15:01:33 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtknotebook.c (gtk_notebook_set_tab_label): keep in sync
index 0bffb6ba4e085083a3878d35d4b9f94f9ab1c9f1..6e6efdf7aab76eb778d68c18b411307804ac9d34 100644 (file)
@@ -1,3 +1,9 @@
+Wed Dec 12 15:11:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtksettings.c (gtk_settings_get_property): Support
+       using names/nicks for the gdk_settings values for enum valued
+       types. (#57678, reported by Anders Carlsson)
+
 Wed Dec 12 15:01:33 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtknotebook.c (gtk_notebook_set_tab_label): keep in sync
index 0bffb6ba4e085083a3878d35d4b9f94f9ab1c9f1..6e6efdf7aab76eb778d68c18b411307804ac9d34 100644 (file)
@@ -1,3 +1,9 @@
+Wed Dec 12 15:11:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtksettings.c (gtk_settings_get_property): Support
+       using names/nicks for the gdk_settings values for enum valued
+       types. (#57678, reported by Anders Carlsson)
+
 Wed Dec 12 15:01:33 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtknotebook.c (gtk_notebook_set_tab_label): keep in sync
index 0bffb6ba4e085083a3878d35d4b9f94f9ab1c9f1..6e6efdf7aab76eb778d68c18b411307804ac9d34 100644 (file)
@@ -1,3 +1,9 @@
+Wed Dec 12 15:11:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtksettings.c (gtk_settings_get_property): Support
+       using names/nicks for the gdk_settings values for enum valued
+       types. (#57678, reported by Anders Carlsson)
+
 Wed Dec 12 15:01:33 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtknotebook.c (gtk_notebook_set_tab_label): keep in sync
index 0bffb6ba4e085083a3878d35d4b9f94f9ab1c9f1..6e6efdf7aab76eb778d68c18b411307804ac9d34 100644 (file)
@@ -1,3 +1,9 @@
+Wed Dec 12 15:11:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtksettings.c (gtk_settings_get_property): Support
+       using names/nicks for the gdk_settings values for enum valued
+       types. (#57678, reported by Anders Carlsson)
+
 Wed Dec 12 15:01:33 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtknotebook.c (gtk_notebook_set_tab_label): keep in sync
index 0bffb6ba4e085083a3878d35d4b9f94f9ab1c9f1..6e6efdf7aab76eb778d68c18b411307804ac9d34 100644 (file)
@@ -1,3 +1,9 @@
+Wed Dec 12 15:11:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtksettings.c (gtk_settings_get_property): Support
+       using names/nicks for the gdk_settings values for enum valued
+       types. (#57678, reported by Anders Carlsson)
+
 Wed Dec 12 15:01:33 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtknotebook.c (gtk_notebook_set_tab_label): keep in sync
index 0bffb6ba4e085083a3878d35d4b9f94f9ab1c9f1..6e6efdf7aab76eb778d68c18b411307804ac9d34 100644 (file)
@@ -1,3 +1,9 @@
+Wed Dec 12 15:11:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtksettings.c (gtk_settings_get_property): Support
+       using names/nicks for the gdk_settings values for enum valued
+       types. (#57678, reported by Anders Carlsson)
+
 Wed Dec 12 15:01:33 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtknotebook.c (gtk_notebook_set_tab_label): keep in sync
index 2b1487eea1e5b264afea9ee7984ebdad54ecbdfd..5832a1bbeb9be5c72bc3c4408ab4fe45c6e7ed4f 100644 (file)
@@ -276,8 +276,15 @@ gtk_settings_get_property (GObject     *object,
                           GParamSpec  *pspec)
 {
   GtkSettings *settings = GTK_SETTINGS (object);
+  GType value_type = G_VALUE_TYPE (value);
+  GType fundamental_type = G_TYPE_FUNDAMENTAL (value_type);
 
-  if (g_value_type_transformable (G_TYPE_INT, G_VALUE_TYPE (value)) ||
+  /* For enums and strings, we need to get the value as a string,
+   * not as an int, since we support using names/nicks as the setting
+   * value.
+   */
+  if ((g_value_type_transformable (G_TYPE_INT, value_type) &&
+       !(fundamental_type == G_TYPE_ENUM || fundamental_type == G_TYPE_FLAGS)) ||
       g_value_type_transformable (G_TYPE_STRING, G_VALUE_TYPE (value)) ||
       g_value_type_transformable (GDK_TYPE_COLOR, G_VALUE_TYPE (value)))
     {